#include <iostream>
#include <future>
// 使⽤std::promise和std::future配合
// std::promise提供了⼀种设置值的⽅式，它可以在设置之后通过相关联的std::future对象进⾏读取。
// 换种说法就是之前说过std::future可以读取⼀个异步函数的返回值了， 但是要等待就绪， ⽽std::promise
// 就提供⼀种 方式手动让 std::future就绪


int Add(int num1,int num2)
{
    return num1+num2;
}

int main()
{
    std::promise<int> pro;
    std::future<int> res = pro.get_future();
    std::thread thr([&pro]()
    {
        int sum = Add(11,22);
        pro.set_value(sum);
    });
    std::cout<<res.get()<<std::endl;
    thr.join();
    return 0;
}